
var express = require('express');
var router = express.Router();

var User=require("./../models/user")

require('./../util/util')

router.get('/', function(req, res, next) {
  res.send('user');
});

router.get('/test', function(req, res, next) {
  res.send('usertest');
});

router.post("/login",function(req,res,next){
  let params={
    userName:req.body.userName,
    userPwd:req.body.userPwd
  }
  User.findOne(params,function(err,doc){
    if (err) {
      console.log(err,"err2")
      res.json({
        status:"1",
        msg:err.message
      })
    }else{
      if(doc){
        res.cookie('userId',doc.userId,{
          path:'/',
          maxAge:1000*60*60
        })
        res.cookie("userName",doc.userName,{
          path:'/',
          maxAge:1000*60*60
        })
        // req.session.user=doc;
        res.json({
          status:'0',
          msg:'',
          result:{
            userName:doc.userName
          }
        })
      }
    }
  })

})

//退出登录
router.post("/logout",function(req,res,next){
  res.cookie('userId',"",{
    path:"/",
    maxAge:-1
  })
  res.json({
    status:"0",
    msg:'',
    result:""
  })
})

//校验
router.get("/checkLogin",function(req,res,next){
  if (req.cookies.userId) {
    res.json({
      status:'0',
      msg:'',
      result:req.cookies.userName
    })
  }else{
    res.json({
      status:'1',
      msg:'未登录',
      result:""
    })    
  }
})

//查询当前用户的购物车数据
router.get('/cartList',function(req,res,next){
  var userId=req.cookies.userId;
  User.findOne({userId},function(err,doc){
    if (err) {
      res.json({
        status:'1',
        msg:err.message,
        result:''
      })
    } else {
      if (doc) {
        res.json({
          status:'0',
          mes:"",
          result:doc.cardList
        }) 
      }
    }
  })
})

router.post("/cartDel",function(req,res,next){
  let userId=req.cookies.userId,productId=req.body.productId;
  User.update({userId},{$pull:{'cardList':{'productId':productId}}},function(err,doc){
    if (err) {
      res.json({
        status:'1',
        msg:err.message,
        result:''
      })
    } else {
      res.json({
        status:'0',
        msg:'',
        result:'suc' 
      })
    }
  })
})

//编辑
router.post("/editCart",function(req,res,next){
  // console.log(req,"request")
  let userId=req.cookies.userId,
  productId=req.body.productId,
  productNum=req.body.productNum,
  checked=req.body.checked;
  User.update({userId,"cardList.productId":productId},{
    "cardList.$.productNum":productNum,
    "cardList.$.checked":checked
  },function(err,doc){
    if (err) {
      res.json({
        status:'1',
        msg:err.message,
        result:''
      })
    } else {
      res.json({
        status:'0',
        msg:'',
        result:'suc' 
      })
    }
  })
})

router.post('/editCheckAll',function(req,res,next){
  let userId=req.cookies.userId,
  checkAll=req.body.checkAll?"1":"0";
  User.findOne({userId},function(err,user){
    if (err) {
      res.json({
        status:'1',
        msg:err.message,
        result:''
      })
    } else {
      user.cardList.forEach(item=>{
        item.checked=checkAll
      })
      user.save(function(err1,doc){
        if (err1) {
          res.json({
            status:'1',
            msg:err1.message,
            result:''
          })
        } else {
          res.json({
            status:'0',
            msg:'',
            result:'suc'
          })
        }
      });
    }
  })
})

//查询用户地址接口
router.get("/addressList",function(req,res,next){
  let userId=req.cookies.userId;
  User.findOne({userId},function(err,doc){
    if (err) {
      res.json({
        status:'1',
        msg:err.message,
        result:''
      })
    }else{
      res.json({
        status:'0',
        msg:'',
        result:doc.addressList
      })
    }
  })
})

//设置默认地址
router.post("/setDefault",function(req,res,next){
    console.log("设置默认地址")
    let userId=req.cookies.userId,
    addressId=req.body.addressId;
    if (!addressId) {
        res.json({
            status:'1003',
            msg:'addressId is null',
            result:''
        })
    }else{
        User.findOne({userId},function(err,doc){
            if (err) {
                res.json({
                    status:'1',
                    msg:err.message,
                    result:''
                })
            } else {
                let addressList=doc.addressList;
                addressList.forEach(item=>{
                    if (item.addressId==addressId) {
                        item.isDefault=true
                    } else {
                        item.isDefault=false
                    }
                })
                doc.save(function(err1,doc1){
                    if (err1) {
                        res.json({
                            status:'1',
                            msg:err1.message,
                            result:''
                        })             
                    }else{
                        res.json({
                            status:'0',
                            msg:'',
                            result:'suc'
                        }) 
                    }
                })
            }
        })
    }
})

//删除购物地址
router.post('/delAddress',function(req,res,next){
  let userId=req.cookies.userId,addressId=req.body.addressId;
  User.update({userId},{$pull:{'addressList':{'addressId':addressId}}},function(err,doc){
    if (err) {
      res.json({
        status:'1',
        msg:err.message,
        result:''
      })
    } else {
      res.json({
        status:'0',
        msg:'',
        result:'suc'
      })
    }
  })
})

//
router.post("/payMent",function(req,res,next){
  let userId=req.cookies.userId,
  orderTotal=req.body.orderTotal,
  addressId=req.body.addressId;
  User.findOne({userId},function(err,doc){
    if (err) {
      res.json({
        status:'1',
        msg:err.message,
        result:''
      })
    } else {
      let address='',goodList=[];
      //获取当前用户的地址信息
      address=doc.addressList.find(item=>{
        if (item.addressId==addressId) {
          return item
        }
      })
      //获取用户购物车的购买商品
      goodList=doc.cardList.filter(item=>{
        if (item.checked=='1') {
          return item
        }
      })

      let platform='622';
      let r1=Math.floor(Math.random()*10);
      let r2=Math.floor(Math.random()*10);
      let sysDate=new Date().Format('yyyyMMddhhmmss');
      let createDate=new Date().Format('yyyy-MM-dd hh:mm:ss');
      let orderId=platform+r1+sysDate+r2;

      let order={
        orderId:orderId,
        orderTotal:orderTotal,
        addressInfo:address,
        goodList:goodList,
        orderStatus:'1',
        createDate:createDate
      }
      doc.orderList.push(order);
      doc.save(function(err1,doc1){
        if (err1) {
          res.json({
            status:'1',
            msg:err1.message,
            result:''
          })
        } else {
          res.json({
            status:'0',
            msg:'',
            result:{
              orderId:order.orderId,
              orderTotal:order.orderTotal
            }
          })
        }
      })
    }
  })
})

//根据订单id查询订单信息
router.get("/orderDetail",function(req,res,next){
  let userId=req.cookies.userId,orderId=req.param("orderId");
  User.findOne({userId},function(err,userInfo){
    if (err) {
      res.json({
        status:'1',
        msg:err.message,
        result:''
      })
    } else {
      let orderList=userInfo.orderList;
      if (orderList.length>0) {
        let orderTotal=0;
        orderList.forEach(item=>{
          if (item.orderId==orderId) {
            orderTotal=item.orderTotal
          }
        })
        if (orderTotal>0) {
          res.json({
            status:'0',
            msg:'',
            result:{
              orderId:orderId,
              orderTotal:orderTotal
            }
          })
        } else {
          res.json({
            status:'120002',
            msg:'无此订单',
            result:''
          })
        }
      }else{
        res.json({
          status:'120001',
          msg:'当前用户未创建订单',
          result:''
        })
      }
    }
  })
})

module.exports = router;